"""
列表可以：定义、使用下标索引取值
还可以：插入元素、删除元素、清空列表、修改元素、统计元素个数
以上功能称为：列表的方法
"""
mylist = ['rocky','sb','python']
# 1.1 查找某元素在列表内的下标索引
index = mylist.index('rocky')
print(f'rocky在列表中的下标索引值是：{index}')

# 1.2 如果查找的元素不存在，会报错
# index = mylist.index('hello')
# print(hello在列表中的下标索引值是：{index})

# 2. 修改特定下标索引的值
mylist[0] = 'cx'
print(f'列表被修改元素值后，结果是：{mylist}')

# 在指定下标位置插入新元素
mylist.insert(1,'best')
print(f'列表插入元素后，结果是：{mylist}')

# 在列表的尾部追加 单个 新元素
mylist.append('chengxiao')
print(f"列表在追加了新元素后，结果是{mylist}")

# 在列表的尾部追加一批新元素
mylist2 = [1,2,3]
mylist2.extend(mylist2)
print(f'列表在追加了一个新的列表后，结果是：{mylist}')

# 删除指定下索引的元素（2种方式）
mylist = ['rocky','sb','python']

# 方式1：del 列表[下标】
del mylist[2]
print(f'列表删除二号元素后的结果是：{mylist}')

# 方式2：列表.pop(下标）
mylist = ['rocky','sb','python']
element = mylist.pop(2)
print(f'通过pop方法取出元素后列表内容：{mylist}，取出的元素是：{element}')

# 删除某元素在列表中的第一个匹配项
mylist = ['rocky','sb','rocky','sb','python']
mylist.remove('sb')
print(f'通过remove方法移除元素后，列表的结果是：{mylist}')       # remove只能从前往后删除一个

# 清空列表
my_list = [1,2,3]
my_list.clear()
print(f'列表被清空了，结果是{my_list}')

# 统计列表内某元素的数量
mylist = ['rocky','sb','rocky','sb','python']
count = mylist.count('sb')
print(f"列表中sb的数量是：{count}")

# 统计列表中全部的元素数量
mylist = ['rocky','sb','rocky','sb','python']
count = len(mylist)
print(f"列表的元素数量总共有：{count}个")

"""
可以容纳多个元素（2**63-1个）
可以容纳不同类型的元素（混装）
数据是有序存储的（有下标序号）
允许重复数据存在
可以修改（增加或删除元素等）
"""

print('---------------------------------------------------------')

"""
有一个列表，内容是：[21,25,21,23,22,20]，记录的是一批学生的年龄
请通过列表的功能，对其进行
1，定义这个列表，并用变量接收它
2，追加一个数字31，到列表的尾部
3，追加一个新列表[29,33,30]，到列表的尾部
4，取出第一个元素（应是：21）
5，取出最后一个元素（应是：30）
6，查找出31，在列表中的下标位置
"""
list1 = [21,25,21,23,22,20]
print(list1)
list1.extend([31])
print(list1)
list1.extend([29,33,30])
print(list1)
list1.pop(0)
print(list1)
list1.pop(-1)
print(list1)
index = list1.index(31)
print(list1)
print(index)

